import { request} from "../../request/index.js"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    leftMenuList:[],
    rigthContent:[],
    //点击的左侧菜单
    currentIndex:0,
    scrollTop:0

  },
  //接口的返回数据
  Cates:[],

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // web中本地存储和小程序 和小程序本地存储的区别
    //写代码的方式不一样
    //web:localStorage.setItem("key","value") localStorage.getItem("key")
    // 小程序中：wx.setStorageSync("key","value") wx.getStorage("key")
    //村的时候有没有做数据转换
    // web中 不管存入的是什么类型的数据，最终都会先调用一下toString(),把数据变成了字符串 再存进去
    // 小程序 不存在数据转化这个操做 存什么类型的数据进去获取的时候就是什么类型
    // 1.先判断一下本地存储中有没有旧的数据
    // {time:Date.now(),data:[...]}
    // 2.没有旧的数据,直接发送新请求
    // 3.有旧的数据的同时 旧的数据也没有过期 就使用本地存储中的旧数据即可





    // 获取本地存储中的数据 
    const Cates = wx.getStorageSync("cates");
    //判断
    if(!Cates){
      //不存在 发送请求获取数据
      this.getCates()
    }else{
      //有旧的数据  定义过期时间
      if(Date.now-Cates.time>1000*10){
        //重新发送请求
        this.getCates()
      }else{
        // console.log('使用旧数据')
        this.Cates = Cates.data
              //构造左边的大菜单数据
      let leftMenuList = this.Cates.map(v=>v.cat_name)
      //构造右边的大菜单数据
      let rigthContent = this.Cates[0].children;
      this.setData({
        leftMenuList,
        rigthContent
      })

      }
    }

      
  },
  async getCates(){
    // request({
    //   url:"/categories"
    // })
    // .then(res =>{
    //   this.Cates = res.data.message;
    //   //把接口数据存到本地存储中
    //   wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})

    //   //构造左边的大菜单数据
    //   let leftMenuList = this.Cates.map(v=>v.cat_name)
    //   //构造右边的大菜单数据
    //   let rigthContent = this.Cates[0].children;
    //   this.setData({
    //     leftMenuList,
    //     rigthContent
    //   })
    // })

    // 使用es7的async 和await来发送请求
    const res =await request({url:"/categories"})
          this.Cates = res;
      //把接口数据存到本地存储中
      wx.setStorageSync("cates",{time:Date.now(),data:this.Cates})

      //构造左边的大菜单数据
      let leftMenuList = this.Cates.map(v=>v.cat_name)
      //构造右边的大菜单数据
      let rigthContent = this.Cates[0].children;
      this.setData({
        leftMenuList,
        rigthContent
      })
  },
  //左侧菜单的点击事件
  handleItemTap(e){
    //获取被点击的标题身上的索引
    //给data中的currentIndex赋值
    const {index} = e.currentTarget.dataset
    let rigthContent = this.Cates[index].children;
    this.setData({
      currentIndex:index,
      rigthContent,
      scrollTop:0
    })
  
  }

})